<!DOCTYPE HTML>
<!--generated with sswg-->
<html lang="en">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<head>
    <title>curve</title>
    <link rel="stylesheet" href="../sswg.css">
    <link rel="stylesheet" href="../style.css">
    <link rel="icon" type="image/x-icon" href="favicon.ico">
</head>
<body>
<div style="max-width:1200px; margin:auto;">
<div style="text-align:left;">
<h1 id="curve">
curve
</h1><gray>&lt;/&gt;</gray><a href="https://github.com/pokepetter/ursina/tree/v8_2_0/ursina/curve.py"> ursina.curve</a><br>
<h2 id="Functions">
Functions
</h2><h3 id="linear()">
linear()
</h3><code_block id="code_block_0"><button class="copy_code_button" onclick="copy_to_clipboard(code_block_0)">copy</button>linear(t=None)
</code_block>
<div class="links">&nbsp;&nbsp;<a href="https://github.com/pokepetter/ursina/tree/v8_2_0/ursina/curve.py#L6" alt="Source Code" title="View Source Code" style="font-size:.75em;">&lt;/&gt;</a>&nbsp;&nbsp;<a href="#linear" onclick="navigator.clipboard.writeText('#linear')" title="Copy permalink">◃-</a></div><br>
<hr></hr><br>
<h3 id="in_sine()">
in_sine()
</h3><code_block id="code_block_1"><button class="copy_code_button" onclick="copy_to_clipboard(code_block_1)">copy</button>in_sine(t=None)
</code_block>
<div class="links">&nbsp;&nbsp;<a href="https://github.com/pokepetter/ursina/tree/v8_2_0/ursina/curve.py#L10" alt="Source Code" title="View Source Code" style="font-size:.75em;">&lt;/&gt;</a>&nbsp;&nbsp;<a href="#in_sine" onclick="navigator.clipboard.writeText('#in_sine')" title="Copy permalink">◃-</a></div><br>
<hr></hr><br>
<h3 id="out_sine()">
out_sine()
</h3><code_block id="code_block_2"><button class="copy_code_button" onclick="copy_to_clipboard(code_block_2)">copy</button>out_sine(t=None)
</code_block>
<div class="links">&nbsp;&nbsp;<a href="https://github.com/pokepetter/ursina/tree/v8_2_0/ursina/curve.py#L14" alt="Source Code" title="View Source Code" style="font-size:.75em;">&lt;/&gt;</a>&nbsp;&nbsp;<a href="#out_sine" onclick="navigator.clipboard.writeText('#out_sine')" title="Copy permalink">◃-</a></div><br>
<hr></hr><br>
<h3 id="in_out_sine()">
in_out_sine()
</h3><code_block id="code_block_3"><button class="copy_code_button" onclick="copy_to_clipboard(code_block_3)">copy</button>in_out_sine(t=None)
</code_block>
<div class="links">&nbsp;&nbsp;<a href="https://github.com/pokepetter/ursina/tree/v8_2_0/ursina/curve.py#L18" alt="Source Code" title="View Source Code" style="font-size:.75em;">&lt;/&gt;</a>&nbsp;&nbsp;<a href="#in_out_sine" onclick="navigator.clipboard.writeText('#in_out_sine')" title="Copy permalink">◃-</a></div><br>
<hr></hr><br>
<h3 id="in_quad()">
in_quad()
</h3><code_block id="code_block_4"><button class="copy_code_button" onclick="copy_to_clipboard(code_block_4)">copy</button>in_quad(t=None)
</code_block>
<div class="links">&nbsp;&nbsp;<a href="https://github.com/pokepetter/ursina/tree/v8_2_0/ursina/curve.py#L22" alt="Source Code" title="View Source Code" style="font-size:.75em;">&lt;/&gt;</a>&nbsp;&nbsp;<a href="#in_quad" onclick="navigator.clipboard.writeText('#in_quad')" title="Copy permalink">◃-</a></div><br>
<hr></hr><br>
<h3 id="out_quad()">
out_quad()
</h3><code_block id="code_block_5"><button class="copy_code_button" onclick="copy_to_clipboard(code_block_5)">copy</button>out_quad(t=None)
</code_block>
<div class="links">&nbsp;&nbsp;<a href="https://github.com/pokepetter/ursina/tree/v8_2_0/ursina/curve.py#L26" alt="Source Code" title="View Source Code" style="font-size:.75em;">&lt;/&gt;</a>&nbsp;&nbsp;<a href="#out_quad" onclick="navigator.clipboard.writeText('#out_quad')" title="Copy permalink">◃-</a></div><br>
<hr></hr><br>
<h3 id="in_out_quad()">
in_out_quad()
</h3><code_block id="code_block_6"><button class="copy_code_button" onclick="copy_to_clipboard(code_block_6)">copy</button>in_out_quad(t=None)
</code_block>
<div class="links">&nbsp;&nbsp;<a href="https://github.com/pokepetter/ursina/tree/v8_2_0/ursina/curve.py#L30" alt="Source Code" title="View Source Code" style="font-size:.75em;">&lt;/&gt;</a>&nbsp;&nbsp;<a href="#in_out_quad" onclick="navigator.clipboard.writeText('#in_out_quad')" title="Copy permalink">◃-</a></div><br>
<hr></hr><br>
<h3 id="in_cubic()">
in_cubic()
</h3><code_block id="code_block_7"><button class="copy_code_button" onclick="copy_to_clipboard(code_block_7)">copy</button>in_cubic(t=None)
</code_block>
<div class="links">&nbsp;&nbsp;<a href="https://github.com/pokepetter/ursina/tree/v8_2_0/ursina/curve.py#L37" alt="Source Code" title="View Source Code" style="font-size:.75em;">&lt;/&gt;</a>&nbsp;&nbsp;<a href="#in_cubic" onclick="navigator.clipboard.writeText('#in_cubic')" title="Copy permalink">◃-</a></div><br>
<hr></hr><br>
<h3 id="out_cubic()">
out_cubic()
</h3><code_block id="code_block_8"><button class="copy_code_button" onclick="copy_to_clipboard(code_block_8)">copy</button>out_cubic(t=None)
</code_block>
<div class="links">&nbsp;&nbsp;<a href="https://github.com/pokepetter/ursina/tree/v8_2_0/ursina/curve.py#L41" alt="Source Code" title="View Source Code" style="font-size:.75em;">&lt;/&gt;</a>&nbsp;&nbsp;<a href="#out_cubic" onclick="navigator.clipboard.writeText('#out_cubic')" title="Copy permalink">◃-</a></div><br>
<hr></hr><br>
<h3 id="in_out_cubic()">
in_out_cubic()
</h3><code_block id="code_block_9"><button class="copy_code_button" onclick="copy_to_clipboard(code_block_9)">copy</button>in_out_cubic(t=None)
</code_block>
<div class="links">&nbsp;&nbsp;<a href="https://github.com/pokepetter/ursina/tree/v8_2_0/ursina/curve.py#L46" alt="Source Code" title="View Source Code" style="font-size:.75em;">&lt;/&gt;</a>&nbsp;&nbsp;<a href="#in_out_cubic" onclick="navigator.clipboard.writeText('#in_out_cubic')" title="Copy permalink">◃-</a></div><br>
<hr></hr><br>
<h3 id="in_quart()">
in_quart()
</h3><code_block id="code_block_10"><button class="copy_code_button" onclick="copy_to_clipboard(code_block_10)">copy</button>in_quart(t=None)
</code_block>
<div class="links">&nbsp;&nbsp;<a href="https://github.com/pokepetter/ursina/tree/v8_2_0/ursina/curve.py#L53" alt="Source Code" title="View Source Code" style="font-size:.75em;">&lt;/&gt;</a>&nbsp;&nbsp;<a href="#in_quart" onclick="navigator.clipboard.writeText('#in_quart')" title="Copy permalink">◃-</a></div><br>
<hr></hr><br>
<h3 id="out_quart()">
out_quart()
</h3><code_block id="code_block_11"><button class="copy_code_button" onclick="copy_to_clipboard(code_block_11)">copy</button>out_quart(t=None)
</code_block>
<div class="links">&nbsp;&nbsp;<a href="https://github.com/pokepetter/ursina/tree/v8_2_0/ursina/curve.py#L57" alt="Source Code" title="View Source Code" style="font-size:.75em;">&lt;/&gt;</a>&nbsp;&nbsp;<a href="#out_quart" onclick="navigator.clipboard.writeText('#out_quart')" title="Copy permalink">◃-</a></div><br>
<hr></hr><br>
<h3 id="in_out_quart()">
in_out_quart()
</h3><code_block id="code_block_12"><button class="copy_code_button" onclick="copy_to_clipboard(code_block_12)">copy</button>in_out_quart(t=None)
</code_block>
<div class="links">&nbsp;&nbsp;<a href="https://github.com/pokepetter/ursina/tree/v8_2_0/ursina/curve.py#L62" alt="Source Code" title="View Source Code" style="font-size:.75em;">&lt;/&gt;</a>&nbsp;&nbsp;<a href="#in_out_quart" onclick="navigator.clipboard.writeText('#in_out_quart')" title="Copy permalink">◃-</a></div><br>
<hr></hr><br>
<h3 id="in_quint()">
in_quint()
</h3><code_block id="code_block_13"><button class="copy_code_button" onclick="copy_to_clipboard(code_block_13)">copy</button>in_quint(t=None)
</code_block>
<div class="links">&nbsp;&nbsp;<a href="https://github.com/pokepetter/ursina/tree/v8_2_0/ursina/curve.py#L70" alt="Source Code" title="View Source Code" style="font-size:.75em;">&lt;/&gt;</a>&nbsp;&nbsp;<a href="#in_quint" onclick="navigator.clipboard.writeText('#in_quint')" title="Copy permalink">◃-</a></div><br>
<hr></hr><br>
<h3 id="out_quint()">
out_quint()
</h3><code_block id="code_block_14"><button class="copy_code_button" onclick="copy_to_clipboard(code_block_14)">copy</button>out_quint(t=None)
</code_block>
<div class="links">&nbsp;&nbsp;<a href="https://github.com/pokepetter/ursina/tree/v8_2_0/ursina/curve.py#L74" alt="Source Code" title="View Source Code" style="font-size:.75em;">&lt;/&gt;</a>&nbsp;&nbsp;<a href="#out_quint" onclick="navigator.clipboard.writeText('#out_quint')" title="Copy permalink">◃-</a></div><br>
<hr></hr><br>
<h3 id="in_out_quint()">
in_out_quint()
</h3><code_block id="code_block_15"><button class="copy_code_button" onclick="copy_to_clipboard(code_block_15)">copy</button>in_out_quint(t=None)
</code_block>
<div class="links">&nbsp;&nbsp;<a href="https://github.com/pokepetter/ursina/tree/v8_2_0/ursina/curve.py#L79" alt="Source Code" title="View Source Code" style="font-size:.75em;">&lt;/&gt;</a>&nbsp;&nbsp;<a href="#in_out_quint" onclick="navigator.clipboard.writeText('#in_out_quint')" title="Copy permalink">◃-</a></div><br>
<hr></hr><br>
<h3 id="in_expo()">
in_expo()
</h3><code_block id="code_block_16"><button class="copy_code_button" onclick="copy_to_clipboard(code_block_16)">copy</button>in_expo(t=None)
</code_block>
<div class="links">&nbsp;&nbsp;<a href="https://github.com/pokepetter/ursina/tree/v8_2_0/ursina/curve.py#L87" alt="Source Code" title="View Source Code" style="font-size:.75em;">&lt;/&gt;</a>&nbsp;&nbsp;<a href="#in_expo" onclick="navigator.clipboard.writeText('#in_expo')" title="Copy permalink">◃-</a></div><br>
<hr></hr><br>
<h3 id="out_expo()">
out_expo()
</h3><code_block id="code_block_17"><button class="copy_code_button" onclick="copy_to_clipboard(code_block_17)">copy</button>out_expo(t=None)
</code_block>
<div class="links">&nbsp;&nbsp;<a href="https://github.com/pokepetter/ursina/tree/v8_2_0/ursina/curve.py#L91" alt="Source Code" title="View Source Code" style="font-size:.75em;">&lt;/&gt;</a>&nbsp;&nbsp;<a href="#out_expo" onclick="navigator.clipboard.writeText('#out_expo')" title="Copy permalink">◃-</a></div><br>
<hr></hr><br>
<h3 id="in_out_expo()">
in_out_expo()
</h3><code_block id="code_block_18"><button class="copy_code_button" onclick="copy_to_clipboard(code_block_18)">copy</button>in_out_expo(t=None)
</code_block>
<div class="links">&nbsp;&nbsp;<a href="https://github.com/pokepetter/ursina/tree/v8_2_0/ursina/curve.py#L95" alt="Source Code" title="View Source Code" style="font-size:.75em;">&lt;/&gt;</a>&nbsp;&nbsp;<a href="#in_out_expo" onclick="navigator.clipboard.writeText('#in_out_expo')" title="Copy permalink">◃-</a></div><br>
<hr></hr><br>
<h3 id="in_circ()">
in_circ()
</h3><code_block id="code_block_19"><button class="copy_code_button" onclick="copy_to_clipboard(code_block_19)">copy</button>in_circ(t=None)
</code_block>
<div class="links">&nbsp;&nbsp;<a href="https://github.com/pokepetter/ursina/tree/v8_2_0/ursina/curve.py#L105" alt="Source Code" title="View Source Code" style="font-size:.75em;">&lt;/&gt;</a>&nbsp;&nbsp;<a href="#in_circ" onclick="navigator.clipboard.writeText('#in_circ')" title="Copy permalink">◃-</a></div><br>
<hr></hr><br>
<h3 id="out_circ()">
out_circ()
</h3><code_block id="code_block_20"><button class="copy_code_button" onclick="copy_to_clipboard(code_block_20)">copy</button>out_circ(t=None)
</code_block>
<div class="links">&nbsp;&nbsp;<a href="https://github.com/pokepetter/ursina/tree/v8_2_0/ursina/curve.py#L110" alt="Source Code" title="View Source Code" style="font-size:.75em;">&lt;/&gt;</a>&nbsp;&nbsp;<a href="#out_circ" onclick="navigator.clipboard.writeText('#out_circ')" title="Copy permalink">◃-</a></div><br>
<hr></hr><br>
<h3 id="in_out_circ()">
in_out_circ()
</h3><code_block id="code_block_21"><button class="copy_code_button" onclick="copy_to_clipboard(code_block_21)">copy</button>in_out_circ(t=None)
</code_block>
<div class="links">&nbsp;&nbsp;<a href="https://github.com/pokepetter/ursina/tree/v8_2_0/ursina/curve.py#L115" alt="Source Code" title="View Source Code" style="font-size:.75em;">&lt;/&gt;</a>&nbsp;&nbsp;<a href="#in_out_circ" onclick="navigator.clipboard.writeText('#in_out_circ')" title="Copy permalink">◃-</a></div><br>
<hr></hr><br>
<h3 id="in_back()">
in_back()
</h3><code_block id="code_block_22"><button class="copy_code_button" onclick="copy_to_clipboard(code_block_22)">copy</button>in_back(t=None, magnitude=<yellow>1</yellow>.<yellow>7</yellow><yellow>0</yellow><yellow>1</yellow><yellow>5</yellow><yellow>8</yellow>)
</code_block>
<div class="links">&nbsp;&nbsp;<a href="https://github.com/pokepetter/ursina/tree/v8_2_0/ursina/curve.py#L125" alt="Source Code" title="View Source Code" style="font-size:.75em;">&lt;/&gt;</a>&nbsp;&nbsp;<a href="#in_back" onclick="navigator.clipboard.writeText('#in_back')" title="Copy permalink">◃-</a></div><br>
<hr></hr><br>
<h3 id="out_back()">
out_back()
</h3><code_block id="code_block_23"><button class="copy_code_button" onclick="copy_to_clipboard(code_block_23)">copy</button>out_back(t=None, magnitude=<yellow>1</yellow>.<yellow>7</yellow><yellow>0</yellow><yellow>1</yellow><yellow>5</yellow><yellow>8</yellow>)
</code_block>
<div class="links">&nbsp;&nbsp;<a href="https://github.com/pokepetter/ursina/tree/v8_2_0/ursina/curve.py#L129" alt="Source Code" title="View Source Code" style="font-size:.75em;">&lt;/&gt;</a>&nbsp;&nbsp;<a href="#out_back" onclick="navigator.clipboard.writeText('#out_back')" title="Copy permalink">◃-</a></div><br>
<hr></hr><br>
<h3 id="in_out_back()">
in_out_back()
</h3><code_block id="code_block_24"><button class="copy_code_button" onclick="copy_to_clipboard(code_block_24)">copy</button>in_out_back(t=None, magnitude=<yellow>1</yellow>.<yellow>7</yellow><yellow>0</yellow><yellow>1</yellow><yellow>5</yellow><yellow>8</yellow>)
</code_block>
<div class="links">&nbsp;&nbsp;<a href="https://github.com/pokepetter/ursina/tree/v8_2_0/ursina/curve.py#L136" alt="Source Code" title="View Source Code" style="font-size:.75em;">&lt;/&gt;</a>&nbsp;&nbsp;<a href="#in_out_back" onclick="navigator.clipboard.writeText('#in_out_back')" title="Copy permalink">◃-</a></div><br>
<hr></hr><br>
<h3 id="in_elastic()">
in_elastic()
</h3><code_block id="code_block_25"><button class="copy_code_button" onclick="copy_to_clipboard(code_block_25)">copy</button>in_elastic(t=None, magnitude=<yellow>0</yellow>.<yellow>7</yellow>)
</code_block>
<div class="links">&nbsp;&nbsp;<a href="https://github.com/pokepetter/ursina/tree/v8_2_0/ursina/curve.py#L150" alt="Source Code" title="View Source Code" style="font-size:.75em;">&lt;/&gt;</a>&nbsp;&nbsp;<a href="#in_elastic" onclick="navigator.clipboard.writeText('#in_elastic')" title="Copy permalink">◃-</a></div><br>
<hr></hr><br>
<h3 id="out_elastic()">
out_elastic()
</h3><code_block id="code_block_26"><button class="copy_code_button" onclick="copy_to_clipboard(code_block_26)">copy</button>out_elastic(t=None, magnitude=<yellow>0</yellow>.<yellow>7</yellow>)
</code_block>
<div class="links">&nbsp;&nbsp;<a href="https://github.com/pokepetter/ursina/tree/v8_2_0/ursina/curve.py#L164" alt="Source Code" title="View Source Code" style="font-size:.75em;">&lt;/&gt;</a>&nbsp;&nbsp;<a href="#out_elastic" onclick="navigator.clipboard.writeText('#out_elastic')" title="Copy permalink">◃-</a></div><br>
<hr></hr><br>
<h3 id="in_out_elastic()">
in_out_elastic()
</h3><code_block id="code_block_27"><button class="copy_code_button" onclick="copy_to_clipboard(code_block_27)">copy</button>in_out_elastic(t=None, magnitude=<yellow>0</yellow>.<yellow>6</yellow><yellow>5</yellow>)
</code_block>
<div class="links">&nbsp;&nbsp;<a href="https://github.com/pokepetter/ursina/tree/v8_2_0/ursina/curve.py#L178" alt="Source Code" title="View Source Code" style="font-size:.75em;">&lt;/&gt;</a>&nbsp;&nbsp;<a href="#in_out_elastic" onclick="navigator.clipboard.writeText('#in_out_elastic')" title="Copy permalink">◃-</a></div><br>
<hr></hr><br>
<h3 id="out_bounce()">
out_bounce()
</h3><code_block id="code_block_28"><button class="copy_code_button" onclick="copy_to_clipboard(code_block_28)">copy</button>out_bounce(t=None)
</code_block>
<div class="links">&nbsp;&nbsp;<a href="https://github.com/pokepetter/ursina/tree/v8_2_0/ursina/curve.py#L199" alt="Source Code" title="View Source Code" style="font-size:.75em;">&lt;/&gt;</a>&nbsp;&nbsp;<a href="#out_bounce" onclick="navigator.clipboard.writeText('#out_bounce')" title="Copy permalink">◃-</a></div><br>
<hr></hr><br>
<h3 id="in_bounce()">
in_bounce()
</h3><code_block id="code_block_29"><button class="copy_code_button" onclick="copy_to_clipboard(code_block_29)">copy</button>in_bounce(t=None)
</code_block>
<div class="links">&nbsp;&nbsp;<a href="https://github.com/pokepetter/ursina/tree/v8_2_0/ursina/curve.py#L218" alt="Source Code" title="View Source Code" style="font-size:.75em;">&lt;/&gt;</a>&nbsp;&nbsp;<a href="#in_bounce" onclick="navigator.clipboard.writeText('#in_bounce')" title="Copy permalink">◃-</a></div><br>
<hr></hr><br>
<h3 id="in_out_bounce()">
in_out_bounce()
</h3><code_block id="code_block_30"><button class="copy_code_button" onclick="copy_to_clipboard(code_block_30)">copy</button>in_out_bounce(t=None)
</code_block>
<div class="links">&nbsp;&nbsp;<a href="https://github.com/pokepetter/ursina/tree/v8_2_0/ursina/curve.py#L222" alt="Source Code" title="View Source Code" style="font-size:.75em;">&lt;/&gt;</a>&nbsp;&nbsp;<a href="#in_out_bounce" onclick="navigator.clipboard.writeText('#in_out_bounce')" title="Copy permalink">◃-</a></div><br>
<hr></hr><br>
<h3 id="zero()">
zero()
</h3><code_block id="code_block_31"><button class="copy_code_button" onclick="copy_to_clipboard(code_block_31)">copy</button>zero(t=None)
</code_block>
<div class="links">&nbsp;&nbsp;<a href="https://github.com/pokepetter/ursina/tree/v8_2_0/ursina/curve.py#L228" alt="Source Code" title="View Source Code" style="font-size:.75em;">&lt;/&gt;</a>&nbsp;&nbsp;<a href="#zero" onclick="navigator.clipboard.writeText('#zero')" title="Copy permalink">◃-</a></div><br>
<hr></hr><br>
<h3 id="one()">
one()
</h3><code_block id="code_block_32"><button class="copy_code_button" onclick="copy_to_clipboard(code_block_32)">copy</button>one(t=None)
</code_block>
<div class="links">&nbsp;&nbsp;<a href="https://github.com/pokepetter/ursina/tree/v8_2_0/ursina/curve.py#L231" alt="Source Code" title="View Source Code" style="font-size:.75em;">&lt;/&gt;</a>&nbsp;&nbsp;<a href="#one" onclick="navigator.clipboard.writeText('#one')" title="Copy permalink">◃-</a></div><br>
<hr></hr><br>
<h3 id="combine()">
combine()
</h3><code_block id="code_block_33"><button class="copy_code_button" onclick="copy_to_clipboard(code_block_33)">copy</button>combine(curve_a=None, curve_b=None, split_at=None)
</code_block>
<div class="links">&nbsp;&nbsp;<a href="https://github.com/pokepetter/ursina/tree/v8_2_0/ursina/curve.py#L234" alt="Source Code" title="View Source Code" style="font-size:.75em;">&lt;/&gt;</a>&nbsp;&nbsp;<a href="#combine" onclick="navigator.clipboard.writeText('#combine')" title="Copy permalink">◃-</a></div><br>
<hr></hr><br>
<h3 id="reverse()">
reverse()
</h3><code_block id="code_block_34"><button class="copy_code_button" onclick="copy_to_clipboard(code_block_34)">copy</button>reverse(curve_function=None)
</code_block>
<div class="links">&nbsp;&nbsp;<a href="https://github.com/pokepetter/ursina/tree/v8_2_0/ursina/curve.py#L242" alt="Source Code" title="View Source Code" style="font-size:.75em;">&lt;/&gt;</a>&nbsp;&nbsp;<a href="#reverse" onclick="navigator.clipboard.writeText('#reverse')" title="Copy permalink">◃-</a></div><br>
<hr></hr><br>
<h2 id="Examples">
Examples
</h2><br>
<code_block id="code_block_35"><button class="copy_code_button" onclick="copy_to_clipboard(code_block_35)">copy</button><green><green>''</green></green>'Draws a sheet with every curve and its name<green><green>''</green></green>'
<purple>from</purple> ursina <purple>import</purple> *
<purple>from</purple> ursina <purple>import</purple> <olive>Entity</olive>, Mesh, Text, Ursina, camera, color, curve, window

app = Ursina()
camera.orthographic = True
camera.fov = <yellow>1</yellow><yellow>6</yellow>
camera.position = (<yellow>9</yellow>, <yellow>6</yellow>)
window.color = color.black

<purple>def</purple> render_curve(curve_function, name):
&nbsp;&nbsp;&nbsp;&nbsp;curve_renderer = <olive>Entity</olive>(<olive>model</olive>=Mesh(<olive>vertices</olive>=[Vec3(i / <yellow>3</yellow><yellow>1</yellow>, curve_function(i / <yellow>3</yellow><yellow>1</yellow>), <yellow>0</yellow>) <purple>for</purple> i in <blue>range</blue>(<yellow>3</yellow><yellow>2</yellow>)], <olive>mode</olive>=<green>'line'</green>, <olive>thickness</olive>=<yellow>2</yellow>), <olive>color</olive>=color.light_gray)
&nbsp;&nbsp;&nbsp;&nbsp;_label = Text(<olive>parent</olive>=curve_renderer, <olive>text</olive>=name, <olive>scale</olive>=<yellow>8</yellow>, <olive>color</olive>=color.gray, <olive>y</olive>=-.<yellow>1</yellow>)
&nbsp;&nbsp;&nbsp;&nbsp;return curve_renderer

j = <yellow>0</yellow>
<purple>for</purple> e in dir(curve):
&nbsp;&nbsp;&nbsp;&nbsp;try:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;item = <blue>getattr</blue>(curve, e)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<blue>print</blue>(item.__name__, <green>':'</green>, item(.<yellow>7</yellow><yellow>5</yellow>))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curve_renderer = render_curve(item, item.__name__)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;row = floor(j / <yellow>8</yellow>)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curve_renderer.x = (j % <yellow>8</yellow>) * <yellow>2</yellow>.<yellow>5</yellow>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curve_renderer.y = row * <yellow>1</yellow>.<yellow>7</yellow><yellow>5</yellow>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;label = Text(<olive>parent</olive>=curve_renderer, <olive>text</olive>=item.__name__, <olive>scale</olive>=<yellow>8</yellow>, <olive>color</olive>=color.gray, <olive>y</olive>=-.<yellow>1</yellow>)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j += <yellow>1</yellow>
&nbsp;&nbsp;&nbsp;&nbsp;except:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pass



c = CubicBezier(<yellow>0</yellow>, .<yellow>5</yellow>, <yellow>1</yellow>, .<yellow>5</yellow>)
<blue>print</blue>(<green>'-----------'</green>, c.calculate(.<yellow>2</yellow><yellow>3</yellow>))

window.exit_button.visible = False
window.fps_counter.enabled = False

custom_curve = combine(linear, reverse(in_expo), .<yellow>2</yellow><yellow>5</yellow>)
render_curve(custom_curve, <green>'custom_curve'</green>)
EditorCamera()
app.run()
<green>''</green>'
These are used by <olive>Entity</olive> when animating, like this:

e = <olive>Entity</olive>()
e.animate_y(<yellow>1</yellow>, <olive>curve</olive>=curve.in_expo)

e<yellow>2</yellow> = <olive>Entity</olive>(x=<yellow>1</yellow>.<yellow>5</yellow>)
e<yellow>2</yellow>.animate_y(<yellow>1</yellow>, <olive>curve</olive>=curve.CubicBezier(<yellow>0</yellow>,.<yellow>7</yellow>,<yellow>1</yellow>,.<yellow>3</yellow>))
<green>''</green>'

</code_block>
<div class="sidebar"><span>8.2.0</span><br>
Basics<br>
&nbsp;&nbsp;<a href="ursina.html">Ursina</a><br>
&nbsp;&nbsp;<a href="entity.html">Entity</a><br>
&nbsp;&nbsp;<a href="button.html">Button</a><br>
&nbsp;&nbsp;<a href="sprite.html">Sprite</a><br>
&nbsp;&nbsp;<a href="text.html">Text</a><br>
&nbsp;&nbsp;<a href="audio.html">Audio</a><br>
<br>
Core Modules<br>
&nbsp;&nbsp;<a href="camera.html">camera</a><br>
&nbsp;&nbsp;<a href="mouse.html">mouse</a><br>
&nbsp;&nbsp;<a href="window.html">window</a><br>
&nbsp;&nbsp;<a href="application.html">application</a><br>
&nbsp;&nbsp;<a href="scene.html">scene</a><br>
<br>
Graphics<br>
&nbsp;&nbsp;<a href="color.html">color</a><br>
&nbsp;&nbsp;<a href="mesh.html">Mesh</a><br>
&nbsp;&nbsp;<a href="shader.html">Shader</a><br>
&nbsp;&nbsp;<a href="texture.html">Texture</a><br>
&nbsp;&nbsp;<a href="directional_light.html">DirectionalLight</a><br>
<br>
Procedural Models<br>
&nbsp;&nbsp;<a href="quad.html">Quad</a><br>
&nbsp;&nbsp;<a href="circle.html">Circle</a><br>
&nbsp;&nbsp;<a href="plane.html">Plane</a><br>
&nbsp;&nbsp;<a href="grid.html">Grid</a><br>
&nbsp;&nbsp;<a href="cone.html">Cone</a><br>
&nbsp;&nbsp;<a href="cylinder.html">Cylinder</a><br>
&nbsp;&nbsp;<a href="pipe.html">Pipe</a><br>
&nbsp;&nbsp;<a href="terrain.html">Terrain</a><br>
<br>
modules<br>
&nbsp;&nbsp;<a href="input_handler.html">input_handler</a><br>
&nbsp;&nbsp;<a href="mesh_importer.html">mesh_importer</a><br>
&nbsp;&nbsp;<a href="texture_importer.html">texture_importer</a><br>
&nbsp;&nbsp;<a href="string_utilities.html">string_utilities</a><br>
<br>
Animation<br>
&nbsp;&nbsp;<a href="animation.html">Animation</a><br>
&nbsp;&nbsp;<a href="frame_animation3d.html">FrameAnimation3d</a><br>
&nbsp;&nbsp;<a href="sprite_sheet_animation.html">SpriteSheetAnimation</a><br>
&nbsp;&nbsp;<a href="animator.html">Animator</a><br>
&nbsp;&nbsp;<a href="trail_renderer.html">TrailRenderer</a><br>
&nbsp;&nbsp;<a href="curve.html">curve</a><br>
<br>
Math<br>
&nbsp;&nbsp;<a href="ursinamath.html">ursinamath</a><br>
&nbsp;&nbsp;<a href="vec2.html">Vec2</a><br>
&nbsp;&nbsp;<a href="vec3.html">Vec3</a><br>
&nbsp;&nbsp;<a href="vec4.html">Vec4</a><br>
&nbsp;&nbsp;<a href="cubic_bezier.html">CubicBezier</a><br>
&nbsp;&nbsp;<a href="array_tools.html">array_tools</a><br>
&nbsp;&nbsp;<a href="array2_d.html">Array2D</a><br>
&nbsp;&nbsp;<a href="array3_d.html">Array3D</a><br>
<br>
Gameplay<br>
&nbsp;&nbsp;<a href="ursinastuff.html">ursinastuff</a><br>
&nbsp;&nbsp;<a href="sequence.html">Sequence</a><br>
&nbsp;&nbsp;<a href="func.html">Func</a><br>
&nbsp;&nbsp;<a href="keys.html">Keys</a><br>
<br>
Collision<br>
&nbsp;&nbsp;<a href="raycast.html">raycast</a><br>
&nbsp;&nbsp;<a href="terraincast.html">terraincast</a><br>
&nbsp;&nbsp;<a href="boxcast.html">boxcast</a><br>
&nbsp;&nbsp;<a href="hit_info.html">HitInfo</a><br>
&nbsp;&nbsp;<a href="collider.html">Collider</a><br>
&nbsp;&nbsp;<a href="box_collider.html">BoxCollider</a><br>
&nbsp;&nbsp;<a href="sphere_collider.html">SphereCollider</a><br>
&nbsp;&nbsp;<a href="mesh_collider.html">MeshCollider</a><br>
<br>
Prefabs<br>
&nbsp;&nbsp;<a href="sky.html">Sky</a><br>
&nbsp;&nbsp;<a href="editor_camera.html">EditorCamera</a><br>
&nbsp;&nbsp;<a href="tilemap.html">Tilemap</a><br>
&nbsp;&nbsp;<a href="first_person_controller.html">FirstPersonController</a><br>
&nbsp;&nbsp;<a href="platformer_controller2d.html">PlatformerController2d</a><br>
&nbsp;&nbsp;<a href="conversation.html">Conversation</a><br>
<br>
UI<br>
&nbsp;&nbsp;<a href="button.html">Button</a><br>
&nbsp;&nbsp;<a href="draggable.html">Draggable</a><br>
&nbsp;&nbsp;<a href="tooltip.html">Tooltip</a><br>
&nbsp;&nbsp;<a href="slider.html">Slider</a><br>
&nbsp;&nbsp;<a href="thin_slider.html">ThinSlider</a><br>
&nbsp;&nbsp;<a href="text_field.html">TextField</a><br>
&nbsp;&nbsp;<a href="input_field.html">InputField</a><br>
&nbsp;&nbsp;<a href="content_types.html">ContentTypes</a><br>
&nbsp;&nbsp;<a href="checkbox.html">Checkbox</a><br>
&nbsp;&nbsp;<a href="button_list.html">ButtonList</a><br>
&nbsp;&nbsp;<a href="button_group.html">ButtonGroup</a><br>
&nbsp;&nbsp;<a href="window_panel.html">WindowPanel</a><br>
&nbsp;&nbsp;<a href="file_browser.html">FileBrowser</a><br>
&nbsp;&nbsp;<a href="file_browser_save.html">FileBrowserSave</a><br>
&nbsp;&nbsp;<a href="dropdown_menu.html">DropdownMenu</a><br>
&nbsp;&nbsp;<a href="radial_menu.html">RadialMenu</a><br>
&nbsp;&nbsp;<a href="health_bar.html">HealthBar</a><br>
<br>
Editor<br>
&nbsp;&nbsp;<a href="hot_reloader.html">HotReloader</a><br>
&nbsp;&nbsp;<a href="grid_editor.html">GridEditor</a><br>
&nbsp;&nbsp;<a href="pixel_editor.html">PixelEditor</a><br>
&nbsp;&nbsp;<a href="ascii_editor.html">ASCIIEditor</a><br>
&nbsp;&nbsp;<a href="color_picker.html">ColorPicker</a><br>
<br>
Scripts<br>
&nbsp;&nbsp;<a href="grid_layout.html">grid_layout</a><br>
&nbsp;&nbsp;<a href="duplicate.html">duplicate</a><br>
&nbsp;&nbsp;<a href="smooth_follow.html">SmoothFollow</a><br>
&nbsp;&nbsp;<a href="scrollable.html">Scrollable</a><br>
&nbsp;&nbsp;<a href="noclip_mode.html">NoclipMode</a><br>
&nbsp;&nbsp;<a href="noclip_mode2d.html">NoclipMode2d</a><br>
&nbsp;&nbsp;<a href="build.html">build</a><br>
<br>
Assets<br>
&nbsp;&nbsp;<a href="models.html">models</a><br>
&nbsp;&nbsp;<a href="textures.html">textures</a><br>
<br>
Shaders<br>
&nbsp;&nbsp;<a href="unlit_shader.html">unlit_shader</a><br>
&nbsp;&nbsp;<a href="lit_with_shadows_shader.html">lit_with_shadows_shader</a><br>
&nbsp;&nbsp;<a href="matcap_shader.html">matcap_shader</a><br>
&nbsp;&nbsp;<a href="colored_lights_shader.html">colored_lights_shader</a><br>
&nbsp;&nbsp;<a href="fresnel_shader.html">fresnel_shader</a><br>
&nbsp;&nbsp;<a href="projector_shader.html">projector_shader</a><br>
&nbsp;&nbsp;<a href="texture_blend_shader.html">texture_blend_shader</a><br>
&nbsp;&nbsp;<a href="instancing_shader.html">instancing_shader</a><br>
&nbsp;&nbsp;<a href="triplanar_shader.html">triplanar_shader</a><br>
&nbsp;&nbsp;<a href="normals_shader.html">normals_shader</a><br>
&nbsp;&nbsp;<a href="transition_shader.html">transition_shader</a><br>
&nbsp;&nbsp;<a href="fxaa.html">fxaa</a><br>
&nbsp;&nbsp;<a href="ssao.html">ssao</a><br>
&nbsp;&nbsp;<a href="camera_outline_shader.html">camera_outline_shader</a><br>
&nbsp;&nbsp;<a href="pixelation_shader.html">pixelation_shader</a><br>
&nbsp;&nbsp;<a href="camera_contrast.html">camera_contrast</a><br>
&nbsp;&nbsp;<a href="camera_vertical_blur.html">camera_vertical_blur</a><br>
&nbsp;&nbsp;<a href="camera_grayscale.html">camera_grayscale</a><br>
</div><br>
<script>
function copy_to_clipboard(containerid) {
    var range = document.createRange()
    range.selectNode(containerid)
    window.getSelection().removeAllRanges()
    window.getSelection().addRange(range)
    document.execCommand("copy")
    window.getSelection().removeAllRanges()
}
</script>
<br>
<br>
</body>
</html><style>
h1 {margin-bottom:0em; margin-top:1em}
h2 {margin-bottom:.5em;}
h3 {margin:0em; font-size:1em;}
code_block {margin-top:.0em; margin-bottom:1em;}
hr {border-color:gray; opacity:.25;}
.links {width:fit-content;}
.links a {text-decoration:none; opacity:.5;}
</style>
